
#Region "Using Directives"

Imports System
Imports System.Collections.Generic
Imports System.Text

#End Region

Namespace C4F.DevKit.Bluetooth

    Namespace ServiceAndDeviceDiscovery

        ''' <summary>
        ''' Defines properties that return the service class id i.e. type of the 
        ''' specified service
        ''' </summary>
        <Serializable()> _
        Public Class ServiceType

#Region "Private Members"

            ''' <summary>
            ''' Represents the Guid of the service.
            ''' </summary>
            Private servGuid As Guid

            ''' <summary>
            ''' Represents the description of the service.
            ''' </summary>
            Private desc As String

#End Region

#Region "Constructor"

            ''' <summary>
            ''' Initializes the type of the service.
            ''' </summary>
            ''' <param name="serviceGuid">Represents the Guid of the service.</param>
            ''' <param name="description">Represents the description of the service.
            ''' </param>            
            Friend Sub New(ByVal serviceGuid As Guid, ByVal description As String)

                Me.servGuid = serviceGuid
                Me.desc = description

            End Sub

#End Region

#Region "Public Functions"

            ''' <summary>
            '''An override to the ToString method of base class.
            '''Converts guid associated with ServiceType to string format.
            ''' </summary>
            ''' <returns>Returns the description of the service type.</returns>
            Public Overloads Overrides Function ToString() As String

                Return Me.desc

            End Function

            ''' <summary>
            ''' Equals method for service Type for comparing two service type 
            ''' objects.
            ''' </summary>
            ''' <param name="obj">Object to be compared.</param>
            ''' <returns>Returns true if comparison succeeds else returns false.
            ''' </returns>
            Public Overloads Overrides Function Equals(ByVal obj As Object) As Boolean

                If obj Is Nothing Then
                    Return False
                End If

                Dim serviceTypeObject As ServiceType = TryCast(obj, ServiceType)

                If CType(serviceTypeObject, Object) Is Nothing Then
                    Return False
                End If

                Return (serviceTypeObject.servGuid = Me.servGuid)

            End Function

            ''' <summary>
            ''' Override for GetHashcode method.
            ''' </summary>
            ''' <returns>A hash code for the current object.</returns>
            Public Overloads Overrides Function GetHashCode() As Integer

                Return MyBase.GetHashCode()

            End Function

            ''' <summary>
            ''' Equals method for service Type for comparing two service type
            ''' objects.
            ''' </summary>
            ''' <param name="serviceType">ServiceType Object to be compared.
            ''' </param>
            ''' <returns>Returns true if comparison succeeds else returns false.
            ''' </returns>
            Public Overloads Function Equals(ByVal serviceType As ServiceType) As Boolean

                If serviceType Is Nothing Then

                    Return False

                End If

                ' Return true if the fields match.
                Return (Me.servGuid = serviceType.servGuid)

            End Function

            ''' <summary>
            ''' Operator overload for == operator for comparing two service type
            ''' objects.
            ''' </summary>
            ''' <param name="serviceType1">ServiceType Object to be compared.
            ''' </param>
            ''' <param name="serviceType2">ServiceType Object to be compared.
            ''' </param>
            ''' <returns>Returns true if comparison succeeds else returns false.
            ''' </returns>
            Public Shared Operator =(ByVal serviceType1 As ServiceType, ByVal serviceType2 As ServiceType) As Boolean

                ' If both are null, or both are same instance, return true.
                If System.Object.ReferenceEquals(serviceType1, serviceType2) Then
                    Return True
                End If

                ' If one is null, but not both, return false.
                If (CType(serviceType1, Object) Is Nothing) OrElse (CType(serviceType2, Object) Is Nothing) Then
                    Return False
                End If

                ' Return true if the fields match.
                Return (serviceType1.servGuid = serviceType2.servGuid)

            End Operator

            ''' <summary>
            ''' Operator overload for != operatot for comparing two service type
            ''' objects.
            ''' </summary>
            ''' <param name="serviceType1">ServiceType Object to be compared.
            ''' </param>
            ''' <param name="serviceType2">ServiceType Object to be compared.
            ''' </param>
            ''' <returns>Returns true if the object values dont compare else 
            ''' returns false.</returns>
            Public Shared Operator <>(ByVal serviceType1 As ServiceType, ByVal serviceType2 As ServiceType) As Boolean

                Return (CType(serviceType1, Object) IsNot CType(serviceType2, Object))

            End Operator

#End Region

#Region "Public Properties"

            ''' <summary>
            ''' Gets the guid of the service.
            ''' </summary>        
            Public ReadOnly Property ServiceGuid() As Guid

                Get
                    Return Me.servGuid
                End Get

            End Property

            ''' <summary>
            ''' Gets the description of the service.
            ''' </summary>        
            Public ReadOnly Property Description() As String

                Get
                    Return Me.desc
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for AdvancedAudioDistribution. 
            ''' </summary>
            Public Shared ReadOnly Property AdvancedAudioDistribution() As ServiceType

                Get
                    Return New ServiceType(New Guid(4365, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.AdvAudioDist)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for Audio_Video. 
            ''' </summary>
            Public Shared ReadOnly Property Audio_Video() As ServiceType

                Get
                    Return New ServiceType(New Guid(4396, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.AudioVideo)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for AudioSink. 
            ''' </summary>
            Public Shared ReadOnly Property AudioSink() As ServiceType
                Get
                    Return New ServiceType(New Guid(4363, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.AudioSink)
                End Get
            End Property

            ''' <summary>
            ''' Get Service Type for AudioSource.
            ''' </summary>
            Public Shared ReadOnly Property AudioSource() As ServiceType

                Get
                    Return New ServiceType(New Guid(4362, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.AudioSource)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for AVCTP.
            ''' </summary>
            Public Shared ReadOnly Property AVCTP() As ServiceType

                Get
                    Return New ServiceType(New Guid(23, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.AVCTP)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for AVDTP.
            ''' </summary>
            Public Shared ReadOnly Property AVDTP() As ServiceType
                Get
                    Return New ServiceType(New Guid(25, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.AVDTP)
                End Get
            End Property

            ''' <summary>
            ''' Get Service Type for AVRemoteControl.
            ''' </summary>
            Public Shared ReadOnly Property AVRemoteControl() As ServiceType

                Get
                    Return New ServiceType(New Guid(4366, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.AVRemoteControl)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for AVRemoteControlTarget.
            ''' </summary>
            Public Shared ReadOnly Property AVRemoteControlTarget() As ServiceType

                Get
                    Return New ServiceType(New Guid(4364, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.AVRemoteControlTarget)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for BasicPrinting.
            ''' </summary>
            Public Shared ReadOnly Property BasicPrinting() As ServiceType

                Get
                    Return New ServiceType(New Guid(4386, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.BasicPrinting)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for BNEP.
            ''' </summary>
            Public Shared ReadOnly Property BNEP() As ServiceType

                Get
                    Return New ServiceType(New Guid(15, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.BNEP)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for BrowseGroupDescriptor.
            ''' </summary>
            Public Shared ReadOnly Property BrowseGroupDescriptor() As ServiceType

                Get
                    Return New ServiceType(New Guid(4097, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.BrowseGroupDescriptor)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for CMTP.
            ''' </summary>
            Public Shared ReadOnly Property CMTP() As ServiceType

                Get
                    Return New ServiceType(New Guid(27, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.CMTP)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for Common_ISDN_Access.
            ''' </summary>
            Public Shared ReadOnly Property Common_ISDN_Access() As ServiceType

                Get
                    Return New ServiceType(New Guid(4392, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.CommonISDNAccess)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for CordlessTelephony.
            ''' </summary>
            Public Shared ReadOnly Property CordlessTelephony() As ServiceType

                Get
                    Return New ServiceType(New Guid(4361, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.CordlessTelephony)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for DialupNetworking.
            ''' </summary>
            Public Shared ReadOnly Property DialupNetworking() As ServiceType

                Get
                    Return New ServiceType(New Guid(4355, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.DialupNetworking)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for DirectPrinting.
            ''' </summary>
            Public Shared ReadOnly Property DirectPrinting() As ServiceType

                Get
                    Return New ServiceType(New Guid(4376, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.DirectPrinting)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for DirectPrintingReferenceObjectsService.
            ''' </summary>
            Public Shared ReadOnly Property DirectPrintingReferenceObjectsService() As ServiceType

                Get
                    Return New ServiceType(New Guid(4384, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.DirPrintRefObjServ)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for ESDP_UPNP_IP_LAP.
            ''' </summary>
            Public Shared ReadOnly Property ESDP_UPNP_IP_LAP() As ServiceType

                Get
                    Return New ServiceType(New Guid(4865, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.ESDPUPNPIPLAP)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for ESDP_UPNP_IP_PAN.
            ''' </summary>
            Public Shared ReadOnly Property ESDP_UPNP_IP_PAN() As ServiceType

                Get
                    Return New ServiceType(New Guid(4864, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.ESDPUPNPIPPAN)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for ESDP_UPNP_L2CAP.
            ''' </summary>
            Public Shared ReadOnly Property ESDP_UPNP_L2CAP() As ServiceType

                Get
                    Return New ServiceType(New Guid(4866, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.ESDPUPNPL2CAP)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for Fax.
            ''' </summary>
            Public Shared ReadOnly Property Fax() As ServiceType

                Get
                    Return New ServiceType(New Guid(4369, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.Fax)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for FTP.
            ''' </summary>
            Public Shared ReadOnly Property FTP() As ServiceType

                Get
                    Return New ServiceType(New Guid(10, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.FTP)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for GenericAudio.
            ''' </summary>
            Public Shared ReadOnly Property GenericAudio() As ServiceType

                Get
                    Return New ServiceType(New Guid(4611, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.GenericAudio)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for GenericFileTransfer.
            ''' </summary>
            Public Shared ReadOnly Property GenericFileTransfer() As ServiceType

                Get
                    Return New ServiceType(New Guid(4610, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.GenericFileTransfer)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for GenericNetworking.
            ''' </summary>
            Public Shared ReadOnly Property GenericNetworking() As ServiceType

                Get
                    Return New ServiceType(New Guid(4609, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.GenericNetworking)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for GenericTelephony.
            ''' </summary>
            Public Shared ReadOnly Property GenericTelephony() As ServiceType

                Get
                    Return New ServiceType(New Guid(4612, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.GenericTelephony)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for GN.
            ''' </summary>
            Public Shared ReadOnly Property GN() As ServiceType

                Get
                    Return New ServiceType(New Guid(4375, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.GN)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for Handsfree.
            ''' </summary>
            Public Shared ReadOnly Property Handsfree() As ServiceType

                Get
                    Return New ServiceType(New Guid(4382, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.Handsfree)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for HandsfreeAudioGateway.
            ''' </summary>
            Public Shared ReadOnly Property HandsfreeAudioGateway() As ServiceType

                Get
                    Return New ServiceType(New Guid(4383, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.HandsfreeAudioGateway)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for HardcopyCableReplacement.
            ''' </summary>
            Public Shared ReadOnly Property HardcopyCableReplacement() As ServiceType
                Get
                    Return New ServiceType(New Guid(4389, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.HardcopyCableReplacement)
                End Get
            End Property

            ''' <summary>
            ''' Get Service Type for HardcopyControlChannel.
            ''' </summary>
            Public Shared ReadOnly Property HardcopyControlChannel() As ServiceType

                Get
                    Return New ServiceType(New Guid(18, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.HardcopyControlChannel)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for HardcopyDataChannel.
            ''' </summary>
            Public Shared ReadOnly Property HardcopyDataChannel() As ServiceType

                Get
                    Return New ServiceType(New Guid(20, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.HardcopyDataChannel)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for HardcopyNotification.
            ''' </summary>
            Public Shared ReadOnly Property HardcopyNotification() As ServiceType

                Get
                    Return New ServiceType(New Guid(22, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.HardcopyNotification)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for HCR_Print.
            ''' </summary>
            Public Shared ReadOnly Property HCR_Print() As ServiceType
                Get
                    Return New ServiceType(New Guid(4390, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.HCRPrint)
                End Get
            End Property

            ''' <summary>
            '''Get Service Type for Headset. 
            ''' </summary>
            Public Shared ReadOnly Property Headset() As ServiceType

                Get
                    Return New ServiceType(New Guid(4360, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.Headset)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for HeadsetAudioGateway.
            ''' </summary>
            Public Shared ReadOnly Property HeadsetAudioGateway() As ServiceType

                Get
                    Return New ServiceType(New Guid(4370, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.HeadsetAudioGateway)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for HIDP.
            ''' </summary>
            Public Shared ReadOnly Property HIDP() As ServiceType

                Get
                    Return New ServiceType(New Guid(17, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.HIDP)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for HTTP.
            ''' </summary>
            Public Shared ReadOnly Property HTTP() As ServiceType

                Get
                    Return New ServiceType(New Guid(12, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.HTTP)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for HumanInterfaceDeviceService.
            ''' </summary>
            Public Shared ReadOnly Property HumanInterfaceDeviceService() As ServiceType

                Get
                    Return New ServiceType(New Guid(4388, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.HIDS)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for Imaging.
            ''' </summary>
            Public Shared ReadOnly Property Imaging() As ServiceType

                Get
                    Return New ServiceType(New Guid(4378, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.Imaging)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for ImagingReferencedObjects.
            ''' </summary>
            Public Shared ReadOnly Property ImagingReferencedObjects() As ServiceType

                Get
                    Return New ServiceType(New Guid(4381, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.IRO)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for ImagingResponder.
            ''' </summary>
            Public Shared ReadOnly Property ImagingResponder() As ServiceType

                Get
                    Return New ServiceType(New Guid(4379, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.IR)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for Intercom.
            ''' </summary>
            Public Shared ReadOnly Property Intercom() As ServiceType

                Get
                    Return New ServiceType(New Guid(4368, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.Intercom)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for IP.
            ''' </summary>
            Public Shared ReadOnly Property IP() As ServiceType

                Get
                    Return New ServiceType(New Guid(9, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.IP)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for IrMCSync.
            ''' </summary>
            Public Shared ReadOnly Property IrMCSync() As ServiceType

                Get
                    Return New ServiceType(New Guid(4356, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.IrMCSync)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for IrMCSyncCommand.
            ''' </summary>
            Public Shared ReadOnly Property IrMCSyncCommand() As ServiceType

                Get
                    Return New ServiceType(New Guid(4359, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.IrMCSyncCommand)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for L2CAP.
            ''' </summary>
            Public Shared ReadOnly Property L2CAP() As ServiceType

                Get
                    Return New ServiceType(New Guid(256, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.L2CAP)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for LANAccessUsingPPP.
            ''' </summary>
            Public Shared ReadOnly Property LANAccessUsingPPP() As ServiceType

                Get
                    Return New ServiceType(New Guid(4354, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.LANAccess)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for NAP.
            ''' </summary>
            Public Shared ReadOnly Property NAP() As ServiceType

                Get
                    Return New ServiceType(New Guid(4374, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.NAP)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for OBEX.
            ''' </summary>
            Public Shared ReadOnly Property OBEX() As ServiceType

                Get
                    Return New ServiceType(New Guid(8, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.ObjectExchange)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for OBEXFileTransfer.
            ''' </summary>
            Public Shared ReadOnly Property OBEXFileTransfer() As ServiceType

                Get
                    Return New ServiceType(New Guid(4358, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.OBEXFileTransfer)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for OBEXObjectPush.
            ''' </summary>
            Public Shared ReadOnly Property OBEXObjectPush() As ServiceType

                Get
                    Return New ServiceType(New Guid(4357, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.OBEXObjectPush)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for PANU.
            ''' </summary>
            Public Shared ReadOnly Property PANU() As ServiceType

                Get
                    Return New ServiceType(New Guid(4373, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.PANO)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for Phonebook_Access_PCE.
            ''' </summary>
            Public Shared ReadOnly Property Phonebook_Access_PCE() As ServiceType

                Get
                    Return New ServiceType(New Guid(4398, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.PhonebookAccessPCE)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for Phonebook_Access_PSE.
            ''' </summary>
            Public Shared ReadOnly Property Phonebook_Access_PSE() As ServiceType

                Get
                    Return New ServiceType(New Guid(4399, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.PhonebookAccessPSE)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for PnPInformation.
            ''' </summary>
            Public Shared ReadOnly Property PnPInformation() As ServiceType

                Get
                    Return New ServiceType(New Guid(4608, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.PnPInformation)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for PrintingStatus.
            ''' </summary>
            Public Shared ReadOnly Property PrintingStatus() As ServiceType

                Get
                    Return New ServiceType(New Guid(4387, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.PrintingStatus)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for PublicBrowseGroup.
            ''' </summary>
            Public Shared ReadOnly Property PublicBrowseGroup() As ServiceType
                Get
                    Return New ServiceType(New Guid(4098, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.PublicBrowseGroup)
                End Get
            End Property

            ''' <summary>
            ''' Get Service Type for ReferencePrinting.
            ''' </summary>
            Public Shared ReadOnly Property ReferencePrinting() As ServiceType

                Get
                    Return New ServiceType(New Guid(4377, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.ReferencePrinting)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for ReflectedUI.
            ''' </summary>
            Public Shared ReadOnly Property ReflectedUI() As ServiceType
                Get
                    Return New ServiceType(New Guid(4385, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.ReflectedUI)
                End Get
            End Property

            ''' <summary>
            ''' Get Service Type for RFCOMM.
            ''' </summary>
            Public Shared ReadOnly Property RFCOMM() As ServiceType

                Get
                    Return New ServiceType(New Guid(3, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.RFCOMM)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for SDP.
            ''' </summary>
            Public Shared ReadOnly Property SDP() As ServiceType

                Get
                    Return New ServiceType(New Guid(1, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.SDP)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for SerialPortProfile.
            ''' </summary>
            Public Shared ReadOnly Property SerialPortProfile() As ServiceType
                Get
                    Return New ServiceType(New Guid("00001101-0000-1000-8000-00805F9B34FB"), SDPMessages.SerialPort)
                End Get
            End Property

            ''' <summary>
            ''' Get Service Type for ServiceDiscoveryServer.
            ''' </summary>
            Public Shared ReadOnly Property ServiceDiscoveryServer() As ServiceType

                Get
                    Return New ServiceType(New Guid(4096, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.ServiceDiscoveryServer)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for SIM_Access.
            ''' </summary>
            Public Shared ReadOnly Property SIM_Access() As ServiceType
                Get
                    Return New ServiceType(New Guid(4397, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.SIMAccess)
                End Get
            End Property

            ''' <summary>
            ''' Get Service Type for TCP.
            ''' </summary>
            Public Shared ReadOnly Property TCP() As ServiceType

                Get
                    Return New ServiceType(New Guid(4, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.TCP)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for TCS_AT.
            ''' </summary>
            Public Shared ReadOnly Property TCS_AT() As ServiceType

                Get
                    Return New ServiceType(New Guid(6, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.TCSAT)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for TCS_BIN.
            ''' </summary>
            Public Shared ReadOnly Property TCS_BIN() As ServiceType
                Get
                    Return New ServiceType(New Guid(5, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.TCSBIN)
                End Get
            End Property

            ''' <summary>
            ''' Get Service Type for UDI_C_PLANE.
            ''' </summary>
            Public Shared ReadOnly Property UDI_C_PLANE() As ServiceType

                Get
                    Return New ServiceType(New Guid(29, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.UDICPLANE)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for UDI_MT.
            ''' </summary>
            Public Shared ReadOnly Property UDI_MT() As ServiceType

                Get
                    Return New ServiceType(New Guid(4394, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.UDIMT)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for UDI_TA.
            ''' </summary>
            Public Shared ReadOnly Property UDI_TA() As ServiceType

                Get
                    Return New ServiceType(New Guid(4395, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.UDITA)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for UDP.
            ''' </summary>
            Public Shared ReadOnly Property UDP() As ServiceType

                Get
                    Return New ServiceType(New Guid(2, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.UDP)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for UPNP.
            ''' </summary>
            Public Shared ReadOnly Property UPNP() As ServiceType

                Get
                    Return New ServiceType(New Guid(16, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.UPNP)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for UPNP_IP_Service.
            ''' </summary>
            Public Shared ReadOnly Property UPNP_IP_Service() As ServiceType

                Get
                    Return New ServiceType(New Guid(4614, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.UPNPIPService)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for UPNP_Service.
            ''' </summary>
            Public Shared ReadOnly Property UPNP_Service() As ServiceType

                Get
                    Return New ServiceType(New Guid(4613, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.UPNPService)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for VideoConferencing.
            ''' </summary>
            Public Shared ReadOnly Property VideoConferencing() As ServiceType
                Get
                    Return New ServiceType(New Guid(4367, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.VideoConferencing)
                End Get
            End Property

            ''' <summary>
            ''' Get Service Type for VideoConferencingGW.
            ''' </summary>
            Public Shared ReadOnly Property VideoConferencingGW() As ServiceType

                Get
                    Return New ServiceType(New Guid(4393, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.VideoConferencingGW)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for VideoDistribution.
            ''' </summary>
            Public Shared ReadOnly Property VideoDistribution() As ServiceType
                Get
                    Return New ServiceType(New Guid(4869, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.VideoDistribution)
                End Get
            End Property

            ''' <summary>
            ''' Get Service Type for VideoSink.
            ''' </summary>
            Public Shared ReadOnly Property VideoSink() As ServiceType

                Get
                    Return New ServiceType(New Guid(4868, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.VideoSink)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for VideoSource.
            ''' </summary>
            Public Shared ReadOnly Property VideoSource() As ServiceType

                Get
                    Return New ServiceType(New Guid(4867, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.VideoSource)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for WAP.
            ''' </summary>
            Public Shared ReadOnly Property WAP() As ServiceType

                Get
                    Return New ServiceType(New Guid(4371, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.WAP)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for WAPClient.
            ''' </summary>
            Public Shared ReadOnly Property WAPClient() As ServiceType

                Get
                    Return New ServiceType(New Guid(4372, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.WAPClient)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for WSP.
            ''' </summary>
            Public Shared ReadOnly Property WSP() As ServiceType

                Get
                    Return New ServiceType(New Guid(14, 0, 4096, 128, 0, 0, _
                     128, 95, 155, 52, 251), SDPMessages.WSP)
                End Get

            End Property

            ''' <summary>
            ''' Get Service Type for UnknownProfile.
            ''' </summary>
            Public Shared ReadOnly Property UnknownProfile() As ServiceType

                Get
                    Return New ServiceType(New Guid(0, 0, 0, 0, 0, 0, _
                     0, 0, 0, 0, 0), SDPMessages.UnknownProfile)
                End Get

            End Property

#End Region

        End Class

    End Namespace

End Namespace
